色彩调整之亮度、曝光度、对比度滤镜 您所在的位置:网站首页 幼儿歌曲集锦 六一 色彩调整之亮度、曝光度、对比度滤镜

色彩调整之亮度、曝光度、对比度滤镜

2024-03-16 15:08| 来源: 网络整理| 查看: 265

GPUImageBrightnessFilter

调节图像的亮度,公式如下:

y = x + 255 ∗ b y = x + 255 * b y=x+255∗b 其中 x x x为调节前的像素值, y y y为调节后的像素值, b b b为调节参数;即分别在R、G、B三通道上加上调节参数即可。

vec3 col = texture(iChannel0,uv).rgb; float brightness = 0.5; col += vec3(brightness); fragColor = vec4(col, 1.);

brightness等于0.0、0.5、0.7 时效果如下:

GPUImageExposureFilter

调节图像的曝光度。根据维基百科给出的定义:

曝光值是一个以2为底的对数刻度系统。曝光值(EV)满足公式: E V = l o g 2 N 2 t EV = log_{2}\frac{N^2}{t} EV=log2​tN2​, 2 E V = N 2 t 2^{EV} = \frac{N^2}{t} 2EV=tN2​。其中N是光圈(f值);t是曝光时间(快门),单位秒。

因为我们关心的是曝光值大小与图像的关系,所以只看 2 E V 2^{EV} 2EV即可。这里GPUImage的作者认为图像的呈现效果是与 2 E V 2^{EV} 2EV大小成线性关系的。

// 曝光值设置成1.0 const float exposure = 1.; vec2 uv = fragCoord/iResolution.xy; vec4 col = texture(iChannel0,uv); // 调整图像的RGB col.rgb = col.rgb * pow(2.,exposure); fragColor = vec4(col.rgb,1.0);

exposure等于0.0、1.0、1.5 时效果如下:

GPUImageContrastFilter

调节图像的对比度。对比度,简单来讲就是反应了一张图像的亮区域和暗区域的层次感。更详细的内容请访问对比度。对比度的算法公式如下:

y = [ x − 127.5 ∗ ( 1 − b ) ] ∗ k + 127.5 ∗ ( 1 + b ) y = [x - 127.5 * (1 - b)] * k + 127.5 * (1 + b) y=[x−127.5∗(1−b)]∗k+127.5∗(1+b)

其中 x x x为调节前的像素值, y y y为调节后的像素值; b b b的取值范围 [ − 1 , 1 ] [-1,1] [−1,1],用于调节亮度; k k k用于调整对比度。特别地: 当 b = 0 时 , y = ( x − 127.5 ) ∗ k + 127.5 当b=0时, y = (x - 127.5) * k + 127.5 当b=0时,y=(x−127.5)∗k+127.5,此时只调节对比度;当 k = 1 时 , y = x + 255 ∗ b k=1时, y = x + 255 * b k=1时,y=x+255∗b,此时只调节亮度。

vec3 col = texture(iChannel0,uv).rgb; float contrast = 0.2; col = (col.rgb - vec3(.5)) * contrast + vec3(.5); fragColor = vec4(col, 1.);

contrast等于1.0、2.0、3.0 时效果如下:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有